package cn.sumpu.app.guoguojie.dao;

import java.util.List;
import java.util.Map;

import cn.sumpu.app.guoguojie.domain.Message;
import cn.sumpu.app.guoguojie.domain.MessageAmount;
import cn.sumpu.app.guoguojie.domain.Ext.MessageExt;
import cn.sumpu.app.guoguojie.exception.AppBusinessException;

public interface MessageDao {

    /**
     * 删除消息
     * @param map
     * @throws AppBusinessException
     */
    public void deleteMessageByMap(Map<String, Object> map) throws AppBusinessException;

    /***
     * 消息数
     * @param map
     * @return
     * @throws AppBusinessException
     */
    public int getMessageListCount(Map<String, Object> map) throws AppBusinessException;

    /**
     * 查询消息
     * @param map
     * @return
     * @throws AppBusinessException
     */
    public List<MessageExt> getMessageList(Map<String, Object> map) throws AppBusinessException;

    /**
     * 消息详情
     * @param map
     * @return
     * @throws AppBusinessException
     */
    public Message getMessage(Map<String, Object> map) throws AppBusinessException;

    /**
     * 未读消息数量
     * @param map
     * @return
     * @throws AppBusinessException
     */
    public MessageAmount getMessageAmountByMap(Map<String, Object> map) throws AppBusinessException;

    //发送站内消息
    void addClientFeedback(Map<String, Object> map) throws AppBusinessException;

    public int getMessageNoReadCount(Map<String, Object> map) throws AppBusinessException;

    public void insertMessage(Message message) throws AppBusinessException;

    public void updateMessageAmount(Map<String, Object> map) throws AppBusinessException;
    
    public void updateMessage(Map<String, Object> map) throws AppBusinessException;
    
    public void insertMessageAmount(MessageAmount messageAmount) throws AppBusinessException;

    /*public List<MessageExt> getMessageFriend(Map<String, Object> map) throws AppBusinessException;

    public int getMessageFriendCount(Map<String, Object> map) throws AppBusinessException;

    public List<MessageExt> getMessageInner(Map<String, Object> map) throws AppBusinessException;

    public int getMessageInnerCount(Map<String, Object> map) throws AppBusinessException;

    public void insertMessage(Message message) throws AppBusinessException;

    public void deleteMessageById(String identifier) throws AppBusinessException;

    public void deleteMessageByFamily(String member) throws AppBusinessException;

    public int getMessageNoReadCount(Map<String, Object> map) throws AppBusinessException;

   

    public void deleteMessageByReplyId(String messageByReplyId) throws AppBusinessException;

    public void deleteMessage(Map<String, Object> map) throws AppBusinessException;

    

    

    public List<MessageAmount> getMessageAmount(Map<String, Object> map) throws AppBusinessException;*/

}
